package com.briup.day08;

import java.util.Arrays;

/**
 * 如何一个类没有子类继承： 1.final （System String） 2.构造器私有
 *
 * @author lining
 * @date 2024/1/17 15:04
 */
public class TestFinal {
    public static void main(String[] args) {
        new F("jack");
        new F("tom");
        new F("bob");
        new F();
    }
}
//class C extends Arrays {
//    //默认调用父类的无参构造器
//
//}
class F {
    //常量需要显式赋值
    public final int id = 1;
    //通过所有的构造器进行赋值
    public final String name;
    {
        System.out.println(id);
        //System.out.println(name);
    }
    public F(String name) {
        this.name = name;
    }

    public F() {
        this.name  = "admin";
    }

    //不可变的方法
    public final void method(){
        //方法不可以被重写。
//        this.id = 2; 编译错误
    }
}
class S extends F{
    public final String city;
    {
        this.city  = "苏州";//只赋值一次
    }
//    public final void method(){
//        //父类方法不可以被重写。
//    }

    public void say(){
        final int num = 1;
        System.out.println(num);
        //num = 2; 不能重新赋值
        eat(100);
    }
    public void eat(final int a){
        System.out.println(a);
    }
    public void change(){
        final Student s = new Student();
        //修改对象中的属性。可以改变
        s.setId(1);
        //s存储地址值信息不能改变
//        s = new Student(); 编译错误

        Student stu = (Student) new Object();
    }
}
